package com.saihai.common.core.domain.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.saihai.common.annotation.Excel;
import com.saihai.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 微信用户对象 wx_user
 * 
 * @author 姚银锋
 * @date 2021-05-24
 */
public class WxUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 上级id */
    private Long parentId;

    /** openid */
    @Excel(name = "openid")
    private String openid;

    /** 微信会话秘钥 */
    private String sessionKey;



    /** 昵称 */
    @Excel(name = "昵称")
    private String nickname;

    /** 头像 */
    @Excel(name = "头像")
    private String avatarurl;

    /** 性别 */
    @Excel(name = "性别")
    private String gender;

    /** 国家 */
    @Excel(name = "国家")
    private String country;

    /** 省份 */
    @Excel(name = "省份")
    private String province;

    /** 城市 */
    @Excel(name = "城市")
    private String city;

    /** 语种 */
    private String language;

    /** 注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date ctime;

    /** 手机号码 */
    @Excel(name = "手机号码")
    private String mobile;

    /** 余额 */
    @Excel(name = "余额")
    private String balance;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 会员到期日 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "会员到期日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expritionDate;

    /** 字段1 */
    private String str1;

    /** 分销商id */
    private Long distributorId;

    /** 字段2 */
    private String str2;

    /** 字段3 */
    private String str3;

    /** 是否分销商 */
    @Excel(name = "是否分销商")
    private String isDistributor;

    /** 字段4 */
    private String str4;

    /** 字段5 */
    private String str5;


    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setParentId(Long parentId) 
    {
        this.parentId = parentId;
    }

    public Long getParentId() 
    {
        return parentId;
    }
    public void setOpenid(String openid) 
    {
        this.openid = openid;
    }

    public String getOpenid() 
    {
        return openid;
    }
    public void setNickname(String nickname) 
    {
        this.nickname = nickname;
    }

    public String getSessionKey()
    {
        return sessionKey;
    }

    public void setSessionKey(String sessionKey)
    {
        this.sessionKey = sessionKey;
    }

    public String getNickname() 
    {
        return nickname;
    }
    public void setAvatarurl(String avatarurl) 
    {
        this.avatarurl = avatarurl;
    }

    public String getAvatarurl() 
    {
        return avatarurl;
    }
    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }
    public void setCountry(String country) 
    {
        this.country = country;
    }

    public String getCountry() 
    {
        return country;
    }
    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setLanguage(String language) 
    {
        this.language = language;
    }

    public String getLanguage() 
    {
        return language;
    }
    public void setCtime(Date ctime) 
    {
        this.ctime = ctime;
    }

    public Date getCtime() 
    {
        return ctime;
    }
    public void setMobile(String mobile) 
    {
        this.mobile = mobile;
    }

    public String getMobile() 
    {
        return mobile;
    }
    public void setBalance(String balance) 
    {
        this.balance = balance;
    }

    public String getBalance() 
    {
        return balance;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setExpritionDate(Date expritionDate) 
    {
        this.expritionDate = expritionDate;
    }

    public Date getExpritionDate() 
    {
        return expritionDate;
    }
    public void setStr1(String str1) 
    {
        this.str1 = str1;
    }

    public String getStr1() 
    {
        return str1;
    }
    public void setDistributorId(Long distributorId) 
    {
        this.distributorId = distributorId;
    }

    public Long getDistributorId() 
    {
        return distributorId;
    }
    public void setStr2(String str2) 
    {
        this.str2 = str2;
    }

    public String getStr2() 
    {
        return str2;
    }
    public void setStr3(String str3) 
    {
        this.str3 = str3;
    }

    public String getStr3() 
    {
        return str3;
    }
    public void setIsDistributor(String isDistributor) 
    {
        this.isDistributor = isDistributor;
    }

    public String getIsDistributor() 
    {
        return isDistributor;
    }
    public void setStr4(String str4) 
    {
        this.str4 = str4;
    }

    public String getStr4() 
    {
        return str4;
    }
    public void setStr5(String str5) 
    {
        this.str5 = str5;
    }

    public String getStr5() 
    {
        return str5;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("parentId", getParentId())
            .append("openid", getOpenid())
            .append("sessionKey", getSessionKey())
            .append("nickname", getNickname())
            .append("avatarurl", getAvatarurl())
            .append("gender", getGender())
            .append("country", getCountry())
            .append("province", getProvince())
            .append("city", getCity())
            .append("language", getLanguage())
            .append("ctime", getCtime())
            .append("mobile", getMobile())
            .append("balance", getBalance())
            .append("status", getStatus())
            .append("expritionDate", getExpritionDate())
            .append("str1", getStr1())
            .append("distributorId", getDistributorId())
            .append("str2", getStr2())
            .append("str3", getStr3())
            .append("isDistributor", getIsDistributor())
            .append("str4", getStr4())
            .append("str5", getStr5())
            .toString();
    }
}
